import java.util.Arrays;

public class RemoveElements {
    public static void main(String[] args) {
        int[] nums = { 0, 1, 2, 2, 3, 0, 4, 2 }; // 输入数组
        int val = 2; // 要移除的值
        int[] expectedNums = { 0, 1, 3, 0, 4 }; // 长度正确的预期答案。
        // 它以不等于 val 的值排序。

        int k = removeElement(nums, val); // 调用你的实现

        assert k == expectedNums.length;
        Arrays.sort(nums, 0, k); // 排序 nums 的前 k 个元素
        for (int i = 0; i < k; i++) {
            assert nums[i] == expectedNums[i];
        }
        System.out.println("测试通过");
    }

    public static int removeElement(int[] nums, int val) {
        int count = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != val) {
                nums[count++] = nums[i];
            }
        }
        return count;
    }
}
